<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /**
         *  同步 3
         *  宏 1
         *  微 2 4
         *  
         *  输出： 3 2 4 1
         */
        // setTimeout(() => {
        //     console.log(1)
        // }, 0)
        // Promise.resolve().then(() => {
        //     console.log(2)
        // })
        // Promise.resolve().then(() => {
        //     console.log(4)
        // })
        // console.log(3)

        /**
         * 同步： 2
         * 宏  1 
         * 微：3 4
         * 
         * 输出： 2 3 4 1
         */
        // setTimeout(() => {
        //     console.log(1)
        // }, 0)

        // new Promise((resolve) => {
        //     console.log(2)
        //     resolve()
        // }).then(() => {
        //     console.log(3)
        // }).then(() => {
        //     console.log(4)
        // })

        /**
         * 同：3  7  4  
         * 宏： 5 
         * 微： 1  2
         */
        // 3 7 4 5 6 1 2
        // 3 7 4 1 2 5 [6]
        // 3 7 4 5 6 2
        const first = () => (new Promise((resolve, reject) => {
            console.log(3)
            let p = new Promise((resolve, reject) => {
                console.log(7)
                setTimeout(() => {
                    console.log(5)
                    resolve(6)
                }, 0)
                resolve(1)
            })
            resolve(2)
            p.then((arg) => {
                console.log(arg)
            })
        }))

        first().then((arg) => {
            console.log(arg)
        })
        console.log(4)

    </script>
</body>

</html>